home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998…eptember: Technology Seed / September 98 ADC Seed CD.toast / FireWire 1.1 DR2 SDK / Source / AVTransport / Interfaces / AVTransport.h next >
Encoding:
C/C++ Source or Header  |  1998-01-15  |  7.3 KB  |  327 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        AVTransport.h
  3.  
  4.     Contains:    Definitions and interfaces for AV transport control driver
  5.                 family.
  6.  
  7.     Written by:    Erik Staats
  8.  
  9.     Copyright:    © 1996-1997 by Apple Computer, Inc., all rights reserved.
  10.  
  11.     Change History (most recent first):
  12.  
  13.        <FW9>      2/7/97    ES        Added procedure prototype for GetNextAVTClientEvent.
  14.        <FW8>    10/22/96    ES        Changed to generic driver model.
  15.        <FW7>     9/24/96    GG        Added type definitions support for Nextframe, previousframe,
  16.                                     slow, fastplay, review, playback, pause, rewind, and fastforward
  17.                                     and whatchadoing.
  18.        <FW6>     7/31/96    ES        Added dumpBufferOffset to AVTDumpParams.
  19.        <FW5>      7/8/96    ES        Added support for snap shot grabbing and playing capabilities.
  20.        <FW4>     6/20/96    ES        Made this look more like a .i generated interface.
  21.        <FW3>     6/20/96    ES        Changed some comments and formatting.
  22.        <FW2>     6/20/96    ES        Filled in contains and written by fields.
  23.        <FW1>     6/20/96    ES        first checked in
  24.  
  25. */
  26.  
  27. #ifndef __AVTRANSPORT__
  28. #define __AVTRANSPORT__
  29.  
  30. #ifndef __TYPES__
  31. #include <Types.h>
  32. #endif
  33. #ifndef __APPLEEVENTS__
  34. #include <AppleEvents.h>
  35. #endif
  36. #ifndef __NAMEREGISTRY__
  37. #include <NameRegistry.h>
  38. #endif
  39.  
  40. #ifdef __cplusplus
  41. extern "C" {
  42. #endif
  43.  
  44. #if PRAGMA_IMPORT_SUPPORTED
  45. #pragma import on
  46. #endif
  47.  
  48. #if PRAGMA_ALIGN_SUPPORTED
  49. #pragma options align=mac68k
  50. #endif
  51.  
  52. ////////////////////////////////////////////////////////////////////////////////
  53. //
  54. // AV transport control driver family typedefs.
  55. //
  56.  
  57. typedef KernelID                AVTClientID;
  58. typedef KernelID                AVTDriverID;
  59.  
  60. enum
  61. {
  62.     kInvalidAVTClientID            = 0,
  63.     kInvalidAVTDriverID            = 0
  64. };
  65.  
  66. enum
  67. {
  68.     kNdrvTypeIsAVTransport        = 'AVT '
  69. };
  70.  
  71. enum
  72. {
  73.     // Apple event class for AV transport control driver family.
  74.     kAEAVTransportEventClass    = 'AVT ',
  75.  
  76.     // Apple events sent by AV transport control driver family.
  77.     kAEAVTransportDeviceAdded    = 'ADDD',
  78.     kAEAVTransportDeviceRemoved    = 'RMVD',
  79.  
  80.     // Parameters used by AV transport control driver family Apple events.
  81.     kAEAVTDriverIDKey            = 'DRID',
  82.     kAEAVTDriverIDType            = typeLongInteger //zzz should we have our own???
  83. };
  84.  
  85. struct AVTInterfaceParamsStruct
  86. {
  87.     UInt32                        interfaceSelector;
  88. };
  89. typedef struct AVTInterfaceParamsStruct
  90.                                 AVTInterfaceParams,
  91.                                 *AVTInterfaceParamsPtr;
  92.  
  93. typedef OSErr
  94.     (AVTInterfaceProc) (
  95.         AVTInterfaceParamsPtr    pInterfaceParams);
  96. typedef AVTInterfaceProc        *AVTInterfaceProcPtr;
  97.  
  98. enum
  99. {
  100.     cscAVTCommand                = 2
  101. };
  102.  
  103. enum
  104. {
  105.     kAVTransportStop            = 1,
  106.     kAVTransportPlay            = 2,    
  107.     kAVTransportNextFrame        = 3,
  108.     kAVTransportPreviousFrame    = 4,
  109.     kAVTransportSlow            = 5,
  110.     kAVTransportFastPlay        = 6,
  111.     kAVTransportReview            = 7,
  112.     kAVTransportPlayBack        = 8,
  113.     kAVTransportPause            = 9,
  114.     kAVTransportRewind            = 10,
  115.     kAVTransportFastForward        = 11,
  116.     kAVTransportDump            = 1000,
  117.     kAVTransportPlaySnapShot    = 1001,
  118.     kAVTransportStopSnapShot    = 1002,
  119.     kAVTransportWhatchaDoing    = 1003
  120. };
  121.  
  122. struct AVTGenericParamsStruct
  123. {
  124.     AVTInterfaceParams            avtInterfaceParams;
  125.     Ptr                            responseBufferPtr;
  126.     UInt32                        responseBufferSize;
  127. };
  128. typedef struct AVTGenericParamsStruct
  129.                                 AVTGenericParams,
  130.                                 *AVTGenericParamsPtr;
  131.  
  132. struct AVTInitializeParamsStruct
  133. {
  134.     AVTInterfaceParams            avtInterfaceParams;
  135.     RegEntryID                    *pDriverRegEntry;
  136. };
  137. typedef struct AVTInitializeParamsStruct
  138.                                 AVTInitializeParams,
  139.                                 *AVTInitializeParamsPtr;
  140.  
  141. struct AVTTerminateParamsStruct
  142. {
  143.     AVTInterfaceParams            avtInterfaceParams;
  144.     RegEntryID                    *pDriverRegEntry;
  145. };
  146. typedef struct AVTTerminateParamsStruct
  147.                                 AVTTerminateParams,
  148.                                 *AVTTerminateParamsPtr;
  149.  
  150. struct AVTPlayParamsStruct
  151. {
  152.     AVTInterfaceParams            avtInterfaceParams;
  153.     Ptr                            responseBufferPtr;
  154.     UInt32                        responseBufferSize;
  155. };
  156. typedef struct AVTPlayParamsStruct
  157.                                 AVTPlayParams,
  158.                                 *AVTPlayParamsPtr;
  159.  
  160. struct AVTRewindParamsStruct
  161. {
  162.     AVTInterfaceParams            avtInterfaceParams;
  163.     Ptr                            responseBufferPtr;
  164.     UInt32                        responseBufferSize;
  165. };
  166. typedef struct AVTRewindParamsStruct
  167.                                 AVTRewindParams,
  168.                                 *AVTRewindParamsPtr;
  169.  
  170. struct AVTReviewParamsStruct
  171. {
  172.     AVTInterfaceParams            avtInterfaceParams;
  173.     Ptr                            responseBufferPtr;
  174.     UInt32                        responseBufferSize;
  175. };
  176. typedef struct AVTReviewParamsStruct
  177.                                 AVTReviewParams,
  178.                                 *AVTReviewParamsPtr;
  179.  
  180. struct AVTFastForwardParamsStruct
  181. {
  182.     AVTInterfaceParams            avtInterfaceParams;
  183.     Ptr                            responseBufferPtr;
  184.     UInt32                        responseBufferSize;
  185. };
  186. typedef struct AVTFastForwardParamsStruct
  187.                                 AVTFastForwardParams,
  188.                                 *AVTFastForwardParamsPtr;
  189.  
  190. struct AVTFastPlayParamsStruct
  191. {
  192.     AVTInterfaceParams            avtInterfaceParams;
  193.     Ptr                            responseBufferPtr;
  194.     UInt32                        responseBufferSize;
  195. };
  196. typedef struct AVTFastPlayParamsStruct
  197.                                 AVTFastPlayParams,
  198.                                 *AVTFastPlayParamsPtr;
  199.  
  200. struct AVTStopParamsStruct
  201. {
  202.     AVTInterfaceParams            avtInterfaceParams;
  203.     Ptr                            responseBufferPtr;
  204.     UInt32                        responseBufferSize;
  205. };
  206. typedef struct AVTStopParamsStruct
  207.                                 AVTStopParams,
  208.                                 *AVTStopParamsPtr;
  209.  
  210. struct AVTPauseParamsStruct
  211. {
  212.     AVTInterfaceParams            avtInterfaceParams;
  213.     Ptr                            responseBufferPtr;
  214.     UInt32                        responseBufferSize;
  215. };
  216. typedef struct AVTPauseParamsStruct
  217.                                 AVTPauseParams,
  218.                                 *AVTPauseParamsPtr;
  219.  
  220. struct AVTSlowParamsStruct
  221. {
  222.     AVTInterfaceParams            avtInterfaceParams;
  223.     Ptr                            responseBufferPtr;
  224.     UInt32                        responseBufferSize;
  225. };
  226. typedef struct AVTSlowParamsStruct
  227.                                 AVTSlowParams,
  228.                                 *AVTSlowParamsPtr;
  229.  
  230. struct AVTNextFrameParamsStruct
  231. {
  232.     AVTInterfaceParams            avtInterfaceParams;
  233.     Ptr                            responseBufferPtr;
  234.     UInt32                        responseBufferSize;
  235. };
  236. typedef struct AVTNextFrameParamsStruct
  237.                                 AVTNextFrameParams,
  238.                                 *AVTNextFrameParamsPtr;
  239.  
  240. struct AVTPreviousFrameParamsStruct
  241. {
  242.     AVTInterfaceParams            avtInterfaceParams;
  243.     Ptr                            responseBufferPtr;
  244.     UInt32                        responseBufferSize;
  245. };
  246. typedef struct AVTPreviousFrameParamsStruct
  247.                                 AVTPreviousFrameParams,
  248.                                 *AVTPreviousFrameParamsPtr;
  249.  
  250. struct AVTWhatchaDoingParamsStruct
  251. {
  252.     AVTInterfaceParams            avtInterfaceParams;
  253.     Ptr                            responseBufferPtr;
  254.     UInt32                        responseBufferSize;
  255.     int                            what;
  256. };
  257. typedef struct AVTWhatchaDoingParamsStruct
  258.                                 AVTWhatchaDoingParams,
  259.                                 *AVTWhatchaDoingParamsPtr;
  260.  
  261. struct AVTDumpParamsStruct
  262. {
  263.     AVTInterfaceParams            avtInterfaceParams;
  264.     Ptr                            dumpBuffer;
  265.     UInt32                        dumpBufferSize;
  266.     UInt32                        dumpBufferOffset;
  267. };
  268. typedef struct AVTDumpParamsStruct
  269.                                 AVTDumpParams,
  270.                                 *AVTDumpParamsPtr;
  271.  
  272. struct AVTPlaySnapShotParamsStruct
  273. {
  274.     AVTInterfaceParams            avtInterfaceParams;
  275.     Ptr                            snapShotBuffer;
  276.     UInt32                        snapShotBufferSize;
  277. };
  278. typedef struct AVTPlaySnapShotParamsStruct
  279.                                 AVTPlaySnapShotParams,
  280.                                 *AVTPlaySnapShotParamsPtr;
  281.  
  282.  
  283. ////////////////////////////////////////////////////////////////////////////////
  284. //
  285. // AV transport control driver family services.
  286. //
  287.  
  288. OSStatus    RegisterAVTClientApplication (
  289.     AVTClientID                    *pAVTClientID,
  290.     UInt32                        clientContextData);
  291.  
  292. OSStatus    UnregisterAVTClientApplication (
  293.     AVTClientID                    avtClientID);
  294.  
  295. OSStatus    GetAVTDriverList (
  296.     AVTDriverID                    *pAVTDriverIDList,
  297.     UInt32                        avtDriverIDListSize,
  298.     UInt32                        *pNumAVTDrivers);
  299.  
  300. OSStatus    CallAVTDriver (
  301.     AVTDriverID                    avtDriverID,
  302.     AVTInterfaceParamsPtr        pInterfaceParams);
  303.  
  304. OSStatus    OpenAVTDriver (
  305.     AVTDriverID                    avtDriverID);
  306.  
  307. OSStatus    CloseAVTDriver (
  308.     AVTDriverID                    avtDriverID);
  309.  
  310. OSStatus    GetNextAVTClientEvent (
  311.     AVTClientID                    avtClientID);
  312.  
  313.  
  314. #if PRAGMA_ALIGN_SUPPORTED
  315. #pragma options align=reset
  316. #endif
  317.  
  318. #if PRAGMA_IMPORT_SUPPORTED
  319. #pragma import off
  320. #endif
  321.  
  322. #ifdef __cplusplus
  323. }
  324. #endif
  325.  
  326. #endif /* __AVTRANSPORT__ */
  327.